//package com.lkcoffee.demo;
//
//import java.util.Stack;
//
//class MyQueue {
//
//
//    const int N = 200010;
//
//    int p[N]; // p[i] 表示节点 i 的父节点
//
//    // 初始化并查集
//    void init(int n) {
//        for (int i = 0; i < n; i++) {
//            p[i] = i; // 初始化每个节点的父节点为自身
//        }
//    }
//
//    // 查找节点 u 的根，并进行路径压缩
//    int find(int u) {
//        return p[u] == u ? u : p[u] = find(p[u]); // 如果节点 u 的父节点不是自身，则递归查找其父节点，并进行路径压缩
//    }
//
//    // 将节点 u 和节点 v 所在的集合合并
//    void merge(int u, int v) {
//        u = find(u); // 寻找节点 u 的根
//        v = find(v); // 寻找节点 v 的根
//        if (u == v) return; // 如果节点 u 和节点 v 已经在同一个集合中，则不需要连接，直接返回
//        p[v] = u; // 将节点 v 的根连接到节点 u 的根上
//    }
//
//    // 判断节点 u 和节点 v 是否属于同一个集合
//    bool isSame(int u, int v) {
//        u = find(u); // 寻找节点 u 的根
//        v = find(v); // 寻找节点 v 的根
//        return u == v; // 如果节点 u 和节点 v 的根相同，则它们属于同一个集合，返回 true，否则返回 false
//    }
//}
//
///**
// * Your MyQueue object will be instantiated and called as such:
// * MyQueue obj = new MyQueue();
// * obj.push(x);
// * int param_2 = obj.pop();
// * int param_3 = obj.peek();
// * boolean param_4 = obj.empty();
// */